﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SurvivalStrategy.Modules
{
    public delegate bool ActionModuleFunc(ActionModuleArgs args);
    public delegate int ActionModulePriority();

    public class ActionModuleFunction
    {
        private ActionModuleFunc actionModuleFunc;
        public ActionModuleFunc ActionModuleFunc { get { return actionModuleFunc; } }
        private ActionModulePriority actionModulePriority;
        public ActionModulePriority ActionModulePriority { get { return actionModulePriority; } }
        private ActionTags tag;
        public ActionTags Tag { get { return tag; } }
        private ActionModuleArgs args;
        public  ActionModuleArgs Args { get { return args; } }
        private int priority;
        public int Priority { get { return priority; } }

        public bool SetExclusiveFlag { get; internal set; }

        public ActionModuleFunction(ActionModuleFunc actionModuleFunc, ActionModulePriority actionModulePriority, ActionTags tag)
        {
            this.SetExclusiveFlag = false;

            this.actionModuleFunc = actionModuleFunc;
            this.actionModulePriority = actionModulePriority;
            this.tag = tag;
        }

        public void SetArgs(ActionModuleArgs args)
        {
            this.args = args;
        }

        public void SetPriority(int priority)
        {
            this.priority = priority;
        }

    }
}
